/*
 * FileLoader.h
 *
 *  Created on: 01.09.2012
 *      Author: caffeine
 */

#ifndef FileLoader_H_
#define FileLoader_H_

#include <irrlicht.h>
#include "../irr/gui/IElementImage.h"
/***
 * @class FileLoader
 * Класс отвечающий за загрузку ресурсов. Сам выберает тип ресурса в зависимости
 * от расширения и параметров расширения. Перед использованием ОБЯЗАТЕЛЬНО устанавить
 * значение устройство, через которое класс должен работать. Сделать это можно
 * с помощью метода setIrrDevice.
 */
class FileLoader {
public:
	/***
	 * Загружает модель из файла и отдаёт её. ПОддерживает форматы XML и все стандартные irrlicht форматы
	 *
	 * @param path Путь к файлу модели
	 * @param parent родительский узел
	 * @exception IOException если файл не найден, или файл не содержит нужной информации
	 * */
	static irr::scene::IAnimatedMeshSceneNode*getModel(irr::core::stringc path,irr::scene::ISceneNode*parent);
	

	static irr::scene::ISceneNode*getNode(irr::core::stringc path,irr::scene::ISceneNode*parent);

	/***
	 * Загружает рисунок из файла и отдаёт его. Все стандартные irrlicht форматы+рисунки 9-path
	 *
	 * @param path Путь к файлу модели
	 * @exception IOException если файл не найден, или файл не содержит нужной информации
	 * */
	static irr::gui::IElementImage*createElementImage(irr::io::path path);
	static void setIrrDevice(irr::IrrlichtDevice*device);
};

#endif /* FileLoader_H_ */
